// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Title Card Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

//-------Aliases-------//
private alias 25 : TYPE_TITLECARD


// Static Values

// Tables

event ObjectMain
	switch object.state
	case 0
		stage.pauseEnabled = 0
		object.alpha = 255
		object.value1 = screen.xcenter
		object.value1 += 128
		object.value2 = screen.xcenter
		FlipSign(object.value2)
		object.value2 -= 160
		object.value3 = screen.xcenter
		FlipSign(object.value3)
		object.value3 -= 96
		object.value4 = screen.xcenter
		object.value4 += 32
		if credits.screen > 0
			object.state = 7
			object.value0 = 272
			stage.state = STAGE_RUNNING
			SetClassicFade(0, 0, 0, 255)
		else
			object.state++
		end if
		break
	case 1
		if object.value0 < 30
			object.value0++
		else
			object.value0 = 0
			PlayMusic(0)
			object.state++
		end if
		break
	case 2
		if object.value1 > 0
			object.value1 -= 16
			if object.value1 < 0
				object.value1 = 0
			end if
		end if
		if object.value2 < 0
			object.value2 += 16
			if object.value2 > 0
				object.value2 = 0
			end if
		else
			if object.value3 < 0
				object.value3 += 16
				if object.value3 > 0
					object.value3 = 0
				end if
			else
				if object.value4 > 0
					object.value4 -= 16
					if object.value4 < 0
						object.value4 = 0
					end if
				else
					object.state++
				end if
			end if
		end if
		break
	case 3
		if object.value0 < 60
			object.value0++
		else
			object.value0 = 0
			object.alpha = 248
			stage.state = STAGE_RUNNING
			
			currentPlayer = 0
			while currentPlayer < playerCount
				object[currentPlayer].controlMode = -1
				object[currentPlayer].up = 0
				object[currentPlayer].down = 0
				object[currentPlayer].left = 0
				object[currentPlayer].right = 0
				object[currentPlayer].jumpPress = 0
				object[currentPlayer].jumpHold = 0
				object[currentPlayer].value1 = 0
				currentPlayer++
			loop
			object.state++
		end if
		break
	case 4
		if object.alpha > 0
			object.alpha -= 8
		else
			object.state++
			currentPlayer = 0
			while currentPlayer < playerCount
				object[currentPlayer].controlMode = 0
				currentPlayer++
			loop
			object.priority = PRIORITY_ACTIVE
			if options.attractMode == 0
				stage.pauseEnabled = 1
			end if
		end if
		break
	case 5
		if object.value0 < 60
			object.value0++
		else
			object.value0 = 0
			stage.timeEnabled = 1
			
			CheckEqual(SuperTimeAttack, 1)
			temp0 = checkResult
			CheckEqual(options.gameMode, 2)
			temp0 &= checkResult
			CheckEqual(stage.playerListPos, 0)
			temp0 &= checkResult
			CheckEqual(stage.player2Enabled, 0)
			temp0 &= checkResult
			CheckEqual(stage.activeList, REGULAR_STAGE)
			temp0 &= checkResult
			CheckNotEqual(stage.listPos, 18)
			temp0 &= checkResult
			if temp0 == 1			
				SuperTimeAttack = 2
			else
				SuperTimeAttack = 0
			end if
			object.state++
		end if
		break
	case 6
		object.value1 += 32
		object.value4 += 32
		object.value2 -= 32
		object.value3 -= 32
		if object.value0 < 20
			object.value0++
		else
			//stage.pauseEnabled = 1			
			object.type = TypeName[Blank Object]
		end if
		break
	case 7
		if object.value0 > 0
			object.value0 -= 16
			SetClassicFade(0, 0, 0, object.value0)
		else
			currentPlayer = 0
			while currentPlayer < playerCount
				object[currentPlayer].controlMode = 0
				currentPlayer++
			loop
			ResetObjectEntity(object.entityPos, TypeName[Blank Object], 0, 0, 0)
		end if
		break
	case 8
		if object.value0 < 300
			object.value0 += 5
			if credits.screen == 0
				music.volume -= 2
			end if
		else
			stage.activeList = PRESENTATION_STAGE
			if credits.screen > 0
				stage.listPos = StageName[P - STAFF CREDITS]
			else
				stage.listPos = StageName[P - TITLE SCREEN]
				StopMusic()
			end if
			LoadStage()
		end if
		SetClassicFade(0, 0, 0, object.value0)
		break
	case 9
		if object.value0 < 300
			object.value0 += 5
			music.volume -= 2
		else
			stage.activeList = PRESENTATION_STAGE
			stage.listPos = StageName[P - TITLE SCREEN]
			StopMusic()
			LoadStage()
		end if
		SetClassicFade(0, 0, 0, object.value0)
		break
	case 10
		if object.value0 < 300
			object.value0 += 5
			music.volume -= 2
		else
			//stage.activeList = PRESENTATION_STAGE
			//stage.listPos = StageName[P - TIME ATTACK]
			StopMusic()
			WriteSaveRAM()
			LoadStage()
		end if
		SetClassicFade(0, 0, 0, object.value0)
		break
	end switch
end event


event ObjectDraw
	if object.state < 7
		SetActivePalette(0, 0, screen.ysize)
		ClassicTint(0, 0, screen.xsize, screen.ysize, 0, 0, 0, object.alpha)
		temp0 = screen.xcenter
		temp0 -= 28
		temp0 += object.value1
		temp0 += object.propertyValue
		DrawSpriteScreenXY(26, temp0, 76)
		temp0 = screen.xcenter
		temp0 += 22
		temp0 += object.value2
		temp0 += object.propertyValue
		DrawActName(0, temp0, 80, 0, 0, 16, 1)
		temp0 = screen.xcenter
		temp0 -= 57
		temp0 += object.value3
		temp0 += object.propertyValue
		DrawSpriteScreenXY(27, temp0, 100)
		temp0 = screen.xcenter
		temp0 -= 21
		temp0 += object.value4
		temp0 += object.propertyValue
		if stage.actNum < 5
			CheckCurrentStageFolder("BossRush")
			if checkResult == 0
				temp1 = 27
				temp1 += stage.actNum
				if temp1 > 30
					temp1 = 30
				end if
				DrawSpriteScreenXY(temp1, temp0, 102)
			end if
		end if
	end if
end event


event ObjectStartup
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(0, 0, 15, 16, 37, 73)
	SpriteFrame(0, 0, 15, 16, 53, 73)
	SpriteFrame(0, 0, 15, 16, 69, 73)
	SpriteFrame(0, 0, 15, 16, 85, 73)
	SpriteFrame(0, 0, 14, 16, 101, 73)
	SpriteFrame(0, 0, 14, 16, 116, 73)
	SpriteFrame(0, 0, 16, 16, 131, 73)
	SpriteFrame(0, 0, 15, 16, 148, 73)
	SpriteFrame(0, 0, 6, 16, 164, 73)
	SpriteFrame(0, 0, 14, 16, 171, 73)
	SpriteFrame(0, 0, 16, 16, 186, 73)
	SpriteFrame(0, 0, 15, 16, 203, 73)
	SpriteFrame(0, 0, 16, 16, 219, 73)
	SpriteFrame(0, 0, 15, 16, 236, 73)
	SpriteFrame(0, 0, 16, 16, 37, 90)
	SpriteFrame(0, 0, 15, 16, 54, 90)
	SpriteFrame(0, 0, 16, 16, 70, 90)
	SpriteFrame(0, 0, 15, 16, 87, 90)
	SpriteFrame(0, 0, 14, 16, 103, 90)
	SpriteFrame(0, 0, 14, 16, 118, 90)
	SpriteFrame(0, 0, 15, 16, 133, 90)
	SpriteFrame(0, 0, 15, 16, 149, 90)
	SpriteFrame(0, 0, 22, 16, 165, 90)
	SpriteFrame(0, 0, 16, 16, 188, 90)
	SpriteFrame(0, 0, 16, 16, 205, 90)
	SpriteFrame(0, 0, 15, 16, 222, 90)
	SpriteFrame(0, 0, 56, 56, 41, 1)
	if stage.actNum > 4
		SpriteFrame(16, 0, 62, 16, 98, 26)
	else
		SpriteFrame(0, 0, 62, 16, 98, 26)
	end if
	SpriteFrame(0, 0, 39, 24, 98, 1)
	SpriteFrame(0, 0, 43, 24, 138, 1)
	SpriteFrame(0, 0, 43, 24, 182, 1)
	arrayPos0 = 32
	while arrayPos0 < 0x420
		if object[arrayPos0].type == TypeName[Title Card]
			object[arrayPos0].priority = PRIORITY_ACTIVE_PAUSED
			object[arrayPos0].alpha = 255
			object[arrayPos0].drawOrder = 6
			stage.state = STAGE_PAUSED
		end if
		arrayPos0++
	loop
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
